<script>
	import store from '@/store/index.js'	
	import { appUpdate } from '@/api/api.js'
	export default {
		onLaunch: function() {
			//应用加载时判断用户界面语言
			// 判断用户机器语言类型或之前设置过的语言类型
			let langType = uni.getLocale()
			console.log(langType, '判断用户机器语言类型')
			this.$getLang(langType ? langType : 'zh-Hans')
			//GraceUI导入代码
			// #ifdef APP-PLUS
			plus.screen.lockOrientation('portrait-primary');
			const dom = weex.requireModule('dom');
			dom.addRule('fontFace', {
				'fontFamily': "graceIconfont",
				'src': "url('/Grace6/font/grace.ttf')"
			});
			// #endif
			console.log('App Launch')
			// console.log(t)
			this.GetStatusBarHeight()
			
			this.setTabBar()
		},
		onShow: function() {
			this.wgtUrlupload()
			console.log('App Show')
		},
		onHide: function() {
			console.log('App Hide')
		},
		methods: {
			// 动态设置底部tabar的内容
			setTabBar(){
				var arr = [this.$t('navigationBar.homePage'), this.$t('navigationBar.chart'), this.$t('navigationBar.annunciate'), this.$t('navigationBar.setting')]
				arr.forEach((item,index)=>{
					uni.setTabBarItem({
					  index: index,
					  text: item,
					})
				})
			},
			// 版本更新方法
			wgtUrlupload() {
				let _this = this
				try {
					// #ifdef APP-PLUS
					/** 锁定屏幕方向 */
					plus.screen.lockOrientation('portrait-primary');
					/** 检测升级 */
					// 取得版本号
					plus.runtime.getProperty(plus.runtime.appid, function(info) {
						// 版本号变量持久化存储
						getApp().globalData.editionnum = info.version; //版本号持久化存储做其它备用
						console.log("当前应用版本：" + info.version + "---" + plus.runtime.version);
						console.log("appid：" +plus.runtime.appid);
						console.log("appid基座版本号：" +plus.runtime.version);
						let data = {
							version:info.version
						}
						appUpdate(data).then(res => {
							console.log(res)
							if (res.status == 200) {
								_this.checkVersionToLoadUpdate(info.version,res.data);
							} else {
								// uni.showToast({ title: res.message, icon: "none" });
							}
						})
					})
					// #endif
				} catch (error) {
					
				}
			},
			/**
			 * 进行版本型号的比对 以及下载更新请求
			 * @param {Object} server_version 服务器最新 应用版本号
			 * @param {Object} curr_version 当前应用版本号
			 */
			checkVersionToLoadUpdate(server_version,data){
				let _this = this
				if(server_version !== data.version){
					//TODO 此处判断是否为 WIFI连接状态
					if(plus.networkinfo.getCurrentType()!=3){
						uni.showToast({  
							title: _this.$t('pageTranslation.aNewVersionHasBeen'),  
							mask: true,  
							duration: 5000,
							icon:"none"
						});  
						return;  
					}else{
						uni.showModal({
							title: _this.$t('navigationBar.versionUpdating'),
							content: _this.$t('pageTranslation.aNewVersionHas'),
							confirmText:_this.$t('pageTranslation.updateRightNow'),
							cancelText:_this.$t('pageTranslation.goingLate'),
							success: function (res) {
								if (res.confirm) {
									uni.showToast({
										icon:"none",
										mask: true,
										title: _this.$t('pageTranslation.aNewVersion'),  
										duration: 5000,  
									}); 
									//设置 最新版本apk的下载链接
									var downloadApkUrl = data.downloadApkUrl;
									var dtask = plus.downloader.createDownload( downloadApkUrl, {}, function ( d, status ) {  
											// 下载完成  
											if ( status == 200 ) {   
												plus.runtime.install(plus.io.convertLocalFileSystemURL(d.filename),{},{},function(error){  
													uni.showToast({  
														title: _this.$t('pageTranslation.installFail'), 
														duration: 1500  
													});  
												})
											} else {  
												uni.showToast({  
													title: _this.$t('pageTranslation.updateFail'),
													duration: 1500  
												});  
											}    
										});  
									dtask.start();
								
								 //加载进度条
								 dtask.start();
								 var prg = 0;
								 var showLoading = plus.nativeUI.showWaiting("正在下载");
								 dtask.addEventListener('statechanged', function(task, status) { //添加下载任务事件监听器
								 		// 给下载任务设置一个监听 并根据状态 做操作
								 		switch (task.state) {
								 			case 1:
								 				//showLoading.setTitle("正在下载");
								 				break;
								 			case 2:
								 				//showLoading.setTitle("已连接到服务器");
								 				break;
								 			case 3:
								 				prg = parseInt( //下载的进度
								 					(parseFloat(task.downloadedSize) / parseFloat(task
								 						.totalSize)) * 100
								 				);
								 				 //data.percent = prg;
								 				showLoading.setTitle("版本更新,正在下载" + prg + "% ");
								 				break;
								 			case 4:
								 				plus.nativeUI.closeWaiting(); //关闭系统提示框
								 				//popup.value.close()
								 				break;
								 		}
								 
								 	});
								
								} else if (res.cancel) {
									console.log('稍后更新');
								}
							}
						});
					}
				}
			},
			GetStatusBarHeight() {
				let that = this;
				uni.getSystemInfo({
					success: function(res) {
						res.statusBarHeight; //这就是状态栏的高度
						console.log(res.statusBarHeight, 'res.statusBarHeight')
						store.commit('editIStatusBarHeight',res.statusBarHeight)
					},
				});
			},
		}
	}
</script>

<style lang="scss">
	/* 引入表格样式表 */
	@import "@/css/helang-table.scss";
	/* 加载爱丽自定义样式 */
	@import "./css/aili.scss";
	/* 加载框架核心样式 */
	@import "./Grace6/css/grace.scss";
	/* 加载深色模式适配样式 */
	@import "./Grace6/css/graceDark.scss";
	/* 加载自定义样式 */
	@import "./custom/custom.scss";

	/* 加载图标字体 - 条件编译模式 */
	/* #ifdef APP-PLUS-NVUE */
	.gui-icons {
		font-family: graceIconfont;
	}

	/* #endif */
	/* #ifndef APP-NVUE */
	page {
		background: #F0EFF4;
	}

	/* #endif */
	
:deep .uni-easyinput__placeholder-class{
	color: gray!important;
	font-size: 28rpx!important;
}

</style>
